package magda.edytor.dane;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JSeparator;
import java.awt.Font;
import java.io.FileNotFoundException;
import java.io.FileReader;

import javax.swing.JComboBox;
import javax.swing.JList;

public class LigaGUI extends JFrame {

	private JPanel contentPane;
	private JTextField textField;
	KlubGUI klubGUI;
	Klub klub;
	JList list;
	Liga liga = new Liga();
	int id;

	
	/**
	 * Launch the application.
	 */


	/**
	 * Create the frame.
	 */
	public LigaGUI() {
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 471, 386);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JButton btnDodajKlub = new JButton("Zapisz");
		btnDodajKlub.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapiszDane();
			}
		});
		
		
		
		
		btnDodajKlub.setBounds(356, 59, 89, 23);
		contentPane.add(btnDodajKlub);
		
		JButton btnKlub = new JButton("Nowy klub");
		btnKlub.setFont(btnKlub.getFont().deriveFont(btnKlub.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		btnKlub.setBounds(300, 115, 105, 23);
		contentPane.add(btnKlub);
		
		btnKlub.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					 dodaj();
				 
			 }
		});
		
		
		JLabel lblNazwaLigi = new JLabel("Nazwa ligi:");
		lblNazwaLigi.setFont(lblNazwaLigi.getFont().deriveFont(lblNazwaLigi.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblNazwaLigi.setBounds(10, 11, 70, 14);
		contentPane.add(lblNazwaLigi);
		
		textField = new JTextField();
		textField.setBounds(10, 30, 395, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(10, 90, 435, 2);
		contentPane.add(separator);
		
		JButton btnZamknij = new JButton("Zamknij");
		btnZamknij.setBounds(356, 295, 89, 23);
		contentPane.add(btnZamknij);
		
		btnZamknij.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapis();
				
				Zapis.zamkniPlikLigi();
				Zapis.zamkniPlikKlubu();
				Zapis.zamkniPlikDruzyny();
				Zapis.zamkniPlikZawodnika();
				Zapis.zamkniPlikPrezesa();
				Zapis.zamkniPlikTrenera();
				Zapis.zamkniPlikBoiska();
				dispose();
			}
		});
		
		list = new JList();
		list.setBounds(22, 115, 227, 203);
		contentPane.add(list);
		list.setListData(liga.liga);
		
		JLabel lblKluby = new JLabel("Kluby:");
		lblKluby.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
		lblKluby.setBounds(22, 100, 46, 14);
		contentPane.add(lblKluby);
		
		JButton btnEdytujKlub = new JButton("Edytuj klub");
		btnEdytujKlub.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				edytuj();
			}
		});
		btnEdytujKlub.setBounds(300, 149, 105, 23);
		contentPane.add(btnEdytujKlub);
		
		JButton btnUsuKlub = new JButton("Usu\u0144 klub");
		btnUsuKlub.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				usuwanie();
			}
		});
		btnUsuKlub.setBounds(300, 183, 105, 23);
		contentPane.add(btnUsuKlub);
	}
		public void zapiszDane(){
			id = Idd.idLiga();
			liga.setNazwa(textField.getText());
			liga.setId(id);
		}
		
		
		public void dodaj(){
			 klubGUI = new KlubGUI();
			 klub = new Klub();
			 klubGUI.setLigaGUI(this);
			 klubGUI.getLigaGUI().setLiga(liga);
			 	klubGUI.setVisible(true);
			 	klubGUI.setKlub(klub);
			}
		public void usuwanie(){
			liga.usunKlub(list.getSelectedIndex());
			list.setListData(liga.getLiga());
		}
		
		public void edytuj(){
			dodaj();
			klubGUI.getTxtKlub().setText(liga.zwrocKlub(getList().getSelectedIndex()).getNazwa());
			klubGUI.getList().setListData(liga.zwrocKlub(getList().getSelectedIndex()).getDruzyny());
			System.out.println("Jest w edytuj klub");
			klubGUI.setKlub(liga.zwrocKlub(getList().getSelectedIndex()));
			klubGUI.uzupelnienie();
		}
		public void zapis(){
			Zapis.zapisDoPlikuLigi(Integer.toString(liga.getId()),liga.getNazwa());

			int i=0;
			while(i<liga.getLiga().size()){
				
			
			Zapis.zapisDoPliku(Integer.toString(liga.getId()),Integer.toString(liga.zwrocKlub(i).getId()),liga.zwrocKlub(i).getNazwa());
			if(liga.zwrocKlub(i).getPrezes() != null){
				Zapis.zapisDoPlikuPrezesa(Integer.toString(liga.zwrocKlub(i).getId()), liga.zwrocKlub(i).getPrezes().getImie(), liga.zwrocKlub(i).getPrezes().getNazwisko());
			}
			if(liga.zwrocKlub(i).getBoisko() != null){
				Zapis.zapisDoPlikuBoiska(Integer.toString(liga.zwrocKlub(i).getId()), Double.toString(liga.zwrocKlub(i).getBoisko().getPowierzchnia()), liga.zwrocKlub(i).getBoisko().getNawierzchnia());

			}
			if(0< liga.zwrocKlub(i).getDruzyny().size()){
				int j=0;
				while(j< liga.zwrocKlub(i).getDruzyny().size()){
				Zapis.zapisDoPlikuDruzyny(Integer.toString(liga.zwrocKlub(i).getId()),Integer.toString(liga.zwrocKlub(i).zwrocDruzyne(j).getId()),liga.zwrocKlub(i).zwrocDruzyne(j).getNazwa());
				if(liga.zwrocKlub(i).zwrocDruzyne(j).getTrener() != null){
					Zapis.zapisDoPlikuTrenera(Integer.toString(liga.zwrocKlub(i).zwrocDruzyne(j).getId()), liga.zwrocKlub(i).zwrocDruzyne(j).getTrener().getImie(),liga.zwrocKlub(i).zwrocDruzyne(j).getTrener().getNazwisko() );
				}
			
			if(0<liga.zwrocKlub(i).zwrocDruzyne(j).getSklad().size()){
				int k = 0;
				while(k< liga.zwrocKlub(i).zwrocDruzyne(j).getSklad().size())
				{
					Zapis.zapisDoPlikuZawodnika(Integer.toString(liga.zwrocKlub(i).zwrocDruzyne(j).getId()),Integer.toString(liga.zwrocKlub(i).zwrocDruzyne(j).zwrocZawodnika(k).getId()),liga.zwrocKlub(i).zwrocDruzyne(j).zwrocZawodnika(k).getImie(),liga.zwrocKlub(i).zwrocDruzyne(j).zwrocZawodnika(k).getNazwisko(),Integer.toString(liga.zwrocKlub(i).zwrocDruzyne(j).zwrocZawodnika(k).getWiek()),Double.toString(liga.zwrocKlub(i).zwrocDruzyne(j).zwrocZawodnika(k).getUmiejetnosci()));
				k++;
				}
				}
				j++;
				}
				}
				i++;
				}
			
		}



		public KlubGUI getKlubGUI() {
			return klubGUI;
		}

		public void setKlubGUI(KlubGUI klubGUI) {
			this.klubGUI = klubGUI;
		}

		public Klub getKlub() {
			return klub;
		}

		public void setKlub(Klub klub) {
			this.klub = klub;
		}

		public JList getList() {
			return list;
		}

		public void setList(JList list) {
			this.list = list;
		}

		public Liga getLiga() {
			return liga;
		}

		public void setLiga(Liga liga) {
			this.liga = liga;
		}

		public JTextField getTextField() {
			return textField;
		}

		public void setTextField(JTextField textField) {
			this.textField = textField;
		}
}
